#!/usr/bin/env python
# -*- coding: utf-8 -*-

import pygame, os, sys
from pygame.locals import *
from single_player import *
from batalha import *

port = pygame.image.load('imagens' + os.sep + 'interfaces' + os.sep + 'portugues.png')
ing = pygame.image.load('imagens' + os.sep + 'interfaces' + os.sep + 'ingles.png')
fran = pygame.image.load('imagens' + os.sep + 'interfaces' + os.sep + 'frances.png')
img_sair = pygame.image.load('imagens' + os.sep + 'interfaces' + os.sep + 'sair.png')
img_1jogador = pygame.image.load('imagens' + os.sep + 'interfaces' + os.sep + '1jogador.png')
img_batalha = pygame.image.load('imagens' + os.sep + 'interfaces' + os.sep + 'batalha.png')
img_opcoes = pygame.image.load('imagens' + os.sep + 'interfaces' + os.sep + 'opcoes.png')
img_voltar = pygame.image.load('imagens' + os.sep + 'interfaces' + os.sep + 'voltar.png')
img_ponte = pygame.image.load('imagens' + os.sep + 'interfaces' + os.sep + 'batalha_ponte.png')
img_rancho = pygame.image.load('imagens' + os.sep + 'interfaces' + os.sep + 'batalha_rancho.png')
img_cemiterio = pygame.image.load('imagens' + os.sep + 'interfaces' + os.sep + 'batalha_cemiterio.png')
img_cidade = pygame.image.load('imagens' + os.sep + 'interfaces' + os.sep + 'batalha_cidade.png')
img_idiomas = pygame.image.load('imagens' + os.sep + 'interfaces' + os.sep + 'idiomas.png')
img_como_jogar = pygame.image.load('imagens' + os.sep + 'interfaces' + os.sep + 'como_jogar.png')
img_comandos_port = pygame.image.load('imagens' + os.sep + 'interfaces' + os.sep + 'como_jogar_port.png')
img_comandos_ing = pygame.image.load('imagens' + os.sep + 'interfaces' + os.sep + 'como_jogar_ing.png')
img_comandos_fra = pygame.image.load('imagens' + os.sep + 'interfaces' + os.sep + 'como_jogar_fra.png')
img_tela_cheia = pygame.image.load('imagens' + os.sep + 'interfaces' + os.sep + 'tela_cheia.png')
img_sem_tela_cheia = pygame.image.load('imagens' + os.sep + 'interfaces' + os.sep + 's_tela_cheia.png')
img_fullscreen = pygame.image.load('imagens' + os.sep + 'interfaces' + os.sep + 'menu_tela_cheia.png')
img_volume_alto = pygame.image.load('imagens' + os.sep + 'interfaces' + os.sep + 'volume_alto.png')
img_volume_medio = pygame.image.load('imagens' + os.sep + 'interfaces' + os.sep + 'volume_medio.png')
img_volume_baixo = pygame.image.load('imagens' + os.sep + 'interfaces' + os.sep + 'volume_baixo.png')
img_volume_nulo = pygame.image.load('imagens' + os.sep + 'interfaces' + os.sep + 'volume_nulo.png')
img_opcoes_volume = pygame.image.load('imagens' + os.sep + 'interfaces' + os.sep + 'volume.png')
img_linguas = [port,ing,fran]
img_menu_inicial = [img_1jogador,img_batalha,img_opcoes,img_sair]
img_mapas = [img_ponte,img_rancho,img_cemiterio,img_cidade,img_voltar]
img_menu_opcoes = [img_idiomas,img_como_jogar,img_fullscreen,img_opcoes_volume,img_voltar]
img_comandos = [img_comandos_port,img_comandos_ing,img_comandos_fra]
img_menu_tela_cheia = [img_tela_cheia,img_sem_tela_cheia,img_voltar]
img_menu_volume = [img_volume_alto,img_volume_medio,img_volume_baixo,img_volume_nulo]

menu_linguas = [u'Português (BR)','English',u'Français']
portugues = {'menu_inicial':['1 Jogador','Batalha',u'Opções','Sair'],'menu_batalha':['Rio Grande','Rancho da Morte',u'Portões do Cemitério','Terra Sem Lei','Voltar'],'menu_opcoes':['Idiomas','Como Jogar','Tela','Volume','Voltar'],'menu_como_jogar':['Voltar'],'menu_tela_cheia':['Cheia','Janela','Voltar'],'menu_volume':['Alto',u'Médio','Baixo','Nulo']}
ingles = {'menu_inicial':['1 Player','Battle','Options','Exit'],'menu_batalha':['Grand River','Death''s Ranch','Cemetery Gates','Lawless Land','Back'],'menu_opcoes':['Languages','How to play','Screen','Volume','Back'],'menu_como_jogar':['Back'],'menu_tela_cheia':['Full','Window','Back'],'menu_volume':['High','Medium','Low','Null']}
frances = {'menu_inicial':['1 Joueur','Bataille','Options','Quitter'],'menu_batalha':['Grand Fleuve','Le Ranch de la Mort',u'Portes du Cimitière','Terre sans loi ni foi','Retour'],'menu_opcoes':['Langues','Comment Jouer',u'Écran','Volume','Retour'],'menu_como_jogar':['Retour'],'menu_tela_cheia':[u'Complète',u'Fenêtre','Retour'],'menu_volume':['Haute','Moyenne','Faible','Null']}
mapas = ['ponte.png','rancho.png','cemiterio.png','cidade.png']

screen = pygame.display.set_mode((798,672),0,32)
idioma_selecionado = None
idioma = None
stage = None
som = True
pygame.mixer.music.load('sounds' + os.sep + 'menu.mp3')
pygame.mixer.music.play(-1)
def menu(screen,palavras_menu):
	cursor = pygame.image.load('imagens' + os.sep + 'interfaces' + os.sep + 'cursor.png')
	background = pygame.image.load('imagens' + os.sep + 'interfaces' + os.sep + 'menu.jpg')
	som_selecao = pygame.mixer.Sound('sounds' + os.sep + 'selecao.ogg')
	som_enter = pygame.mixer.Sound('sounds' + os.sep + 'enter.ogg')
	cor_n_selecionado = (0,0,0)
	cor_selecionado = (255,0,0)
	selecao = 0
	
	pygame.font.init()
	pygame.init()
	fonte = pygame.font.Font('fontes' + os.sep + 'edmunds.ttf',35)
	pygame.display.set_caption("West Bombers")
	
	global idioma_selecionado, idioma, stage, som
	while 1:
		screen.blit(background,(0,0))
		for event in pygame.event.get():
			if event.type == QUIT:
				pygame.quit()
				sys.exit()
			key = pygame.key.get_pressed()
			if event.type == KEYDOWN:
				if key[pygame.K_s]:
					if selecao < len(palavras_menu)-1:
							selecao += 1
							if som:
								som_selecao.play()
				elif key[pygame.K_w]:
					if selecao > 0:
						selecao -= 1
						if som:
							som_selecao.play()
				elif key[pygame.K_RETURN]:
					if palavras_menu == menu_linguas:
						
						if selecao == 0:
							idioma_selecionado = portugues
							idioma = 'portugues'
							menu(screen,idioma_selecionado['menu_inicial'])
						if selecao == 1:
							idioma_selecionado = ingles
							idioma = 'ingles'
							menu(screen,idioma_selecionado['menu_inicial'])
						if selecao == 2:
							idioma_selecionado = frances
							idioma = 'frances'
							menu(screen,idioma_selecionado['menu_inicial'])
						
					if palavras_menu == idioma_selecionado['menu_inicial']:
						if selecao == 0:
							if som:
								som_enter.play()						
							pygame.mixer.music.stop()	
							Single_Player().start(idioma,som,screen)
						if selecao == 1:
							menu(screen,idioma_selecionado['menu_batalha'])
						if selecao == 2:
							menu(screen,idioma_selecionado['menu_opcoes'])
						if selecao == 3:
							sys.exit()
					if palavras_menu == idioma_selecionado['menu_batalha']:
						if selecao == 0:
							if som:
								som_enter.play()						
							stage = 'ponte'
							pygame.mixer.music.stop()
							Batalha().start(idioma,stage,som)
						if selecao == 1:
							if som:
								som_enter.play()						
							stage = 'rancho'
							pygame.mixer.music.stop()
							Batalha().start(idioma,stage,som)
						if selecao == 2:
							stage = 'cemiterio'
							pygame.mixer.music.stop()
							Batalha().start(idioma,stage,som)
						if selecao == 3:
							if som:
								som_enter.play()						
							stage = 'cidade'
							pygame.mixer.music.stop()
							Batalha().start(idioma,stage,som)
						if selecao == 4:
							menu(screen,idioma_selecionado['menu_inicial'])
							print 'voltar'
						if selecao == 5:
							menu(screen,menu_linguas)
					if palavras_menu == idioma_selecionado['menu_opcoes']:
						if selecao == 0:
							menu(screen,menu_linguas)
						if selecao == 1:
							menu(screen,idioma_selecionado['menu_como_jogar'])
						if selecao == 2:
							menu(screen,idioma_selecionado['menu_tela_cheia'])
						if selecao == 3:
							menu(screen,idioma_selecionado['menu_volume'])
						if selecao == 4:							
							menu(screen,idioma_selecionado['menu_inicial'])
					if palavras_menu == idioma_selecionado['menu_como_jogar']:
						if selecao == 0:
							menu(screen,idioma_selecionado['menu_opcoes'])
					if palavras_menu == idioma_selecionado['menu_tela_cheia']:
						if selecao == 0:
							screen = pygame.display.set_mode((798,672),FULLSCREEN)
						if selecao == 1:
							screen = pygame.display.set_mode((798,672),0,32)
						if selecao == 2:
							menu(screen,idioma_selecionado['menu_opcoes'])
					if palavras_menu == idioma_selecionado['menu_volume']:
						if selecao == 0:
							som = True
							pygame.mixer.music.set_volume(1.0)
							menu(screen,idioma_selecionado['menu_opcoes'])
						if selecao == 1:
							som = True
							pygame.mixer.music.set_volume(0.6)
							menu(screen,idioma_selecionado['menu_opcoes'])
						if selecao == 2:
							som = True
							pygame.mixer.music.set_volume(0.3)
							menu(screen,idioma_selecionado['menu_opcoes'])
						if selecao == 3:
							som = False
							menu(screen,idioma_selecionado['menu_opcoes'])
							
		y=240
		for i in range(len(palavras_menu)):
			if palavras_menu == menu_linguas:
				if selecao == i:
					screen.blit(cursor,(12,y))
					screen.blit(img_linguas[i],(0,0))
					screen.blit(fonte.render((palavras_menu[i]),True,(cor_selecionado)),(55,y))
				else:
					screen.blit(fonte.render((palavras_menu[i]),True,(cor_n_selecionado)),(55,y))
				y+= 40
			elif palavras_menu == idioma_selecionado['menu_inicial']:
				if selecao == i:
					screen.blit(cursor,(12,y))
					screen.blit(img_menu_inicial[i],(0,0))
					screen.blit(fonte.render((palavras_menu[i]),True,(cor_selecionado)),(55,y))
				else:
					screen.blit(fonte.render((palavras_menu[i]),True,(cor_n_selecionado)),(55,y))
				y+= 40				
			elif palavras_menu == idioma_selecionado['menu_batalha']:
				if selecao == i:
					screen.blit(cursor,(12,y))
					screen.blit(img_mapas[i],(0,0))
					screen.blit(fonte.render((palavras_menu[i]),True,(cor_selecionado)),(55,y))
				else:
					screen.blit(fonte.render((palavras_menu[i]),True,(cor_n_selecionado)),(55,y))
				y+= 40
			elif palavras_menu == idioma_selecionado['menu_opcoes']:
				if selecao == i:
					screen.blit(cursor,(12,y))
					screen.blit(img_menu_opcoes[i],(0,0))
					screen.blit(fonte.render((palavras_menu[i]),True,(cor_selecionado)),(55,y))
				else:
					screen.blit(fonte.render((palavras_menu[i]),True,(cor_n_selecionado)),(55,y))
				y+= 40
			elif palavras_menu == idioma_selecionado['menu_como_jogar']:
				if selecao == i:
					if idioma == 'portugues':
						screen.blit(cursor,(302,600))
						screen.blit(fonte.render((palavras_menu[i]),True,(cor_selecionado)),(345,600))
						screen.blit(img_comandos[0],(0,0))
					elif idioma == 'ingles':
						screen.blit(cursor,(302,600))
						screen.blit(fonte.render((palavras_menu[i]),True,(cor_selecionado)),(345,600))
						screen.blit(img_comandos[1],(0,0))
					else:
						screen.blit(cursor,(302,600))
						screen.blit(fonte.render((palavras_menu[i]),True,(cor_selecionado)),(345,600))
						screen.blit(img_comandos[2],(0,0))
			elif palavras_menu == idioma_selecionado['menu_tela_cheia']:
				if selecao == i:
					screen.blit(cursor,(12,y))
					screen.blit(img_menu_tela_cheia[i],(0,0))
					screen.blit(fonte.render((palavras_menu[i]),True,(cor_selecionado)),(55,y))
				else:
					screen.blit(fonte.render((palavras_menu[i]),True,(cor_n_selecionado)),(55,y))
				y+= 40
			elif palavras_menu == idioma_selecionado['menu_volume']:
				if selecao == i:
					screen.blit(cursor,(12,y))
					screen.blit(img_menu_volume[i],(0,0))
					screen.blit(fonte.render((palavras_menu[i]),True,(cor_selecionado)),(55,y))					
				else:
					screen.blit(fonte.render((palavras_menu[i]),True,(cor_n_selecionado)),(55,y))
				y+= 40
		pygame.display.update()

menu(screen,menu_linguas)
